import torch  
from perceptron_model import PerceptronModel  
from net_model import MultiLayerPerceptronModel  
  
# 加载并初始化模型  
def load_model(model_class, model_path):  
    model = model_class()  
    model.load_state_dict(torch.load(model_path))  
    model.eval()  # 设置模型为评估模式  
    return model  
  
# 加载单层感知机模型  
model1 = load_model(PerceptronModel, 'perceptron_model.pth')  
# 加载多层感知机模型  
model2 = load_model(MultiLayerPerceptronModel, 'net_model.pth')  
  
# 准备测试数据  
test_input = torch.tensor([10.0])  
test_input_batch = test_input.unsqueeze(0)  # 为单个样本添加批次维度  
  
# 单层感知机模型推理  
with torch.no_grad():  # 不计算梯度，以节省资源  
    test_output1 = model1(test_input_batch)  
print("单层感知机模型结构:")  
print(model1)  
print(f"测试输入: {test_input.item()}, 测试输出: {test_output1.item():.4f}")  
  
# 多层感知机模型推理  
with torch.no_grad():  # 不计算梯度，以节省资源  
    test_output2 = model2(test_input_batch)  
print("\n多层感知机模型结构:")  
print(model2)  
print(f"测试输入: {test_input.item()}, 测试输出: {test_output2.item():.4f}")